
#ifndef __H_ds_base_H__
#define __H_ds_base_H__

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <float.h>
#include <stdarg.h>

typedef  int ds_bool;
#define _Pass
#define ds_bool_true 1
#define ds_bool_false 0
#define DS_SIZE_NIL 0x7fffffff
#define DS_PREPARE  int FOR__NOT_END = 0;int COND_IS_TRUE = 0;int ARRAY_INDEX = 0;
#define DS_RETURN_VOID 
#define NoneType NULL



#define __data(VAR_TYPE, NAME) \
    VAR_TYPE##_obj NAME##_obj;\
    memset(&NAME##_obj, 0x0, sizeof(VAR_TYPE##_obj));\
    VAR_TYPE##_obj *NAME = & NAME##_obj;

#define FOR_EACH(ITER, SET_CLASS, SET) for(ITER = SET_CLASS##_Begin(SET, DS_ERROR); SET_CLASS##_NotEnd(SET, ITER, DS_ERROR) ; ITER = SET_CLASS##_Next(SET, ITER, DS_ERROR))

#define FOR_EACH_I(I, ITER, SET_CLASS, SET) for(I = 0,ITER = SET_CLASS##_Begin(SET, DS_ERROR); SET_CLASS##_NotEnd(SET, ITER, DS_ERROR) ; ITER = SET_CLASS##_Next(SET, ITER, DS_ERROR), I++)

#define FOR_RANGE(i, start, end) for(i=start; (i) < (end); i++)

#endif// __H_ds_base_H__
